
#ifndef __VECT3F_H__
#define __VECT3F_H__

#include <math.h>

class Vec3f {
	public:
		//float v[3];
		float x;
		float y;
		float z;
		Vec3f();
		Vec3f(float x, float y, float z);
		/*
		float &operator[](int index);
		float operator[](int index) const;
		*/
		Vec3f operator*(float scale) const;
		Vec3f operator/(float scale) const;
		Vec3f operator+(const Vec3f &other) const;
		Vec3f operator-(const Vec3f &other) const;
		Vec3f operator-() const;
		
		const Vec3f &operator*=(float scale);
		const Vec3f &operator/=(float scale);
		const Vec3f &operator+=(const Vec3f &other);
		const Vec3f &operator-=(const Vec3f &other);
		
		float magnitude() const;
		float magnitudeSquared() const;
		Vec3f normalize() const;
		float dot(const Vec3f &other) const;
		Vec3f cross(const Vec3f &other) const;

		static Vec3f rotate(Vec3f v, Vec3f axis, float degrees);
};

Vec3f operator*(float scale, const Vec3f &v);









#endif
